Skip to main content

Meal break not taken penalty, California

Add 1hr of regular pay when a meal break has not been taken within the first five hours of a shift, repeated by the 11th hour.

From the California DLSE:

"In general, when an employee works for a work period of more than five hours, a meal period must be provided no later than the end of the employee’s fifth hour of work (in other words, no later than the start of the employee’s sixth hour of work). When an employee works for a period of more than 10 hours, a second meal period must be provided no later than the end of the employee’s tenth hour of work (in other words, no later than the start of the employee’s eleventh hour of work)."

Details

Rule Type
Time

Execution
After shift

Parameters

NameDataTypeDefaultValueDescription
HourTypelookupEarnings code to use for the meal break penalty payouts

Decision Tree

Rule processing begins in the cell R1:Level1 and proceeds right/down. Any IF statement which results in a DONE step terminates the rule immediately.

Line#Level1Level2Level3Comment
1Start
2IF(EMPLOYEE(Exempt) = 1) No meal required if employee is Exempt
3DONE
4IF(CALC(hours_worked.day) < 6) No meal required if the hours worked is less than 6
5DONE
6SET(mealpenalties = 0)Initialize the number of penalties to zero; possible values when done will be 0, 1 or 2
7SET(meal1 = OCCURRENCES(Lunch, Start of day, Hours into day, 6.0))Count number of meal breaks in the first 6 hours
8SET(meal2 = OCCURRENCES(Lunch, Start of day, Hours into day, 11.0))Count number of meal breaks in first 11 hours
9SET(meal2 = SUBTRACT(meal2, meal1))Subtract meal1 (first 6 hours) from meal2 (first 11 hours) to get meals during hours 6->11
10IF(meal1 = 0) If no meals during first part of day, add a penalty
11SET(mealpenalties = ADD(mealpenalties, 1))
12IF(CALC(hours_worked.day) >= 11) If worked 11 or more hours, check for meal2..
13IF(meal2 = 0) If not meals during second part of the day, add a penalty
14SET(mealpenalties = ADD(mealpenalties, 1))Add a meal penalty to running total
15IF(mealpenalties = 0) No penalties?
16DONE..and we have meal breaks during the next 5 hours, no penalty
17SET( = INSERT_PUNCH(PayDate, HourType, mealpenalties, NL))Insert a meal break penalty for a number of hours
18DONE